import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

// 查询操作
public class Demo2 {
    public static void main(String[] args) throws SQLException {

        // 1. 创建一个 DataSource
        DataSource dataSource = new MysqlDataSource();

        // 2. 建立与数据库的连接
        ((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        // 3. 获取连接
        Connection connection = dataSource.getConnection();

        // 4. 编写 sql
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);

        // 5. 执行 sql 获取结果集合
        ResultSet resultSet = statement.executeQuery();


        // 6. 遍历结果集合
        // 这里用 next() 来遍历结果集  相当于在结果集合中有一个 光标
        // 当光标 指向最后一行的下一个位置时，循环结束
        while(resultSet.next()) {
            // 取出 每一行中的数据
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            // 打印 取出的 数据
            System.out.println("id = " + id + " name = " + name);
        }

        // 7. 关闭连接  注意这里的 resultSet 也是需要关闭的
        // 按照先获取到的资源后释放的规则
        resultSet.close();
        statement.close();
        connection.close();
    }
}
